package com.woniuxy.thred.others;

/**
 * description: LockTest <br>
 * date: 2022/2/6 7:38 下午 <br>
 * author: shesaifei <br>
 * version: 1.0 <br>
 */

import java.util.concurrent.locks.ReentrantLock;

/**
 * 可重入锁：锁可以延续使用 +计数器
 */
public class LockTest04 {
    ReentrantLock lock = new ReentrantLock();

    public void a() throws InterruptedException {
        lock.lock();
        System.out.println(lock.getHoldCount());
        doSomething();
        lock.unlock();
        System.out.println(lock.getHoldCount());
    }

    //不可重入
    public void doSomething() throws InterruptedException {
        lock.lock();
        System.out.println(lock.getHoldCount());
        //
        lock.unlock();
        System.out.println(lock.getHoldCount());
    }

    public static void main(String[] args) throws InterruptedException {
        LockTest03 test = new LockTest03();
        test.a();

        Thread.sleep(1000);
        System.out.println(test.lock.getHoldCount());
    }
}

